const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const merge = require('webpack-merge');
const webpackBaseConfig = require('./webpack.base.config.js');
const fs = require('fs');

fs.open('./src/config/env.js', 'w', function (err, fd) {
  const buf = 'export default "production";';
  fs.write(fd, buf, 0, buf.length, 0, function (err, written, buffer) {});
});

// 判断线上域名
let SYS_HOST = '/',
    NOTICE_HOST = '/'

switch (process.env.type) {
  case 'test':
    SYS_HOST = '//api.ahjtest.top/'
    NOTICE_HOST = '//social.ahjtest.top/'
    break;

  case 'prod':
    SYS_HOST = '//api.anhuanjia.com/'
    NOTICE_HOST = '//social.anhuanjia.com/'
    break;

  case 'dev':
    SYS_HOST = '//api.ahjdev.top/'
    NOTICE_HOST = '//social.ahjdev.top/'
    // SYS_HOST = '/eao'
    // NOTICE_HOST = '/api'
    break;

  default:
    SYS_HOST = '/eao'
    NOTICE_HOST = '/api'
}

module.exports = merge(webpackBaseConfig, {
  output: {
    publicPath: '/dist/',
    filename: '[name].[hash].js',
    chunkFilename: '[name].[hash].chunk.js'
  },
  plugins: [
    new ExtractTextPlugin({
      filename: '[name].[hash].css',
      allChunks: true
    }),
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendors',
      filename: 'vendors.[hash].js'
    }),
    new webpack.DefinePlugin({
      'process.env': {
        TYPE: JSON.stringify(process.env.type),
        NODE_ENV: '"production"',
        SYS_HOST: JSON.stringify(SYS_HOST),
        NOTICE_HOST: JSON.stringify(NOTICE_HOST),
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false,
        drop_debugger: true,
        drop_console: true
      }
    }),
    new HtmlWebpackPlugin({
      filename: '../index.html',
      template: './src/template/index.ejs',
      inject: false
    }),
  ]

});
